class FactoresReconocimientosController < ApplicationController
  # GET /factores_reconocimientos
  # GET /factores_reconocimientos.xml
  def index
    @factores_reconocimientos = FactorReconocimiento.generales
    
    
    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @factores_reconocimientos }
    end
  end

  # GET /factores_reconocimientos/1
  # GET /factores_reconocimientos/1.xml
  def show
    @factor_reconocimiento = FactorReconocimiento.find(params[:id])
    
    respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :xml => @factor_reconocimiento }
    end
  end

  # GET /factores_reconocimientos/new
  # GET /factores_reconocimientos/new.xml
  def new
    @factor_reconocimiento = FactorReconocimiento.new(:area_id=>params[:area_id])    
    respond_to do |format|
      format.html # new.html.erb
      format.xml  { render :xml => @factor_reconocimiento }
    end
  end

  # GET /factores_reconocimientos/1/edit
  def edit
    @factor_reconocimiento = FactorReconocimiento.find(params[:id])
  end

  # POST /factores_reconocimientos
  # POST /factores_reconocimientos.xml
  def create
    @factor_reconocimiento = FactorReconocimiento.new(params[:factor_reconocimiento])
    params[:factor_reconocimiento][:cargo_ids]||=[]
    respond_to do |format|
      logger.debug "\n\n\n#{@factor_reconocimiento.inspect}"
      if @factor_reconocimiento.save
        flash[:notice] =  'Factor creada correctamente.'
        destination = @factor_reconocimiento.area_id ? area_path(@factor_reconocimiento.area_id) : factor_reconocimiento_path(@factor_reconocimiento)
        
        logger.debug "\n\n\n#{destination}\n\n\n"
        format.html { params[:oper].nil? ? redirect_to(destination) : render(:text => "Ok")}
      else
        format.html { render :action => "new" }
        format.xml  { render :xml => @factor_reconocimiento.errors, :status => :unprocessable_entity }
      end
    end
  end

  # PUT /factores_reconocimientos/1
  # PUT /factores_reconocimientos/1.xml
  def update
    @factor_reconocimiento = FactorReconocimiento.find(params[:id])
    params[:factor_reconocimiento][:cargo_ids]||=[]
    @factor_reconocimiento .cargo_ids=[] if @factor_reconocimiento.general?
    respond_to do |format|
      logger.debug "\n\n\n#{@factor_reconocimiento.inspect}"
      if @factor_reconocimiento.update_attributes(params[:factor_reconocimiento])

        flash[:notice] = 'Factor actualizado correctamente.'
        destination = @factor_reconocimiento.area_id ? area_path(@factor_reconocimiento.area_id) : factor_reconocimiento_path(@factor_reconocimiento)
        logger.debug "\n\n\n#{@factor_reconocimiento.inspect}"
        logger.debug "\n\n\n#{destination}\n\n\n"
        format.html { params[:oper].nil? ? redirect_to(destination) : render(:text => "Ok")}
        format.xml  { head :ok }
      else
        format.html { render :action => "edit" }
        format.xml  { render :xml => @factor_reconocimiento.errors, :status => :unprocessable_entity }
      end
    end
  end

  # DELETE /factores_reconocimientos/1
  # DELETE /factores_reconocimientos/1.xml
  def destroy
    @factor_reconocimiento = FactorReconocimiento.find(params[:id])
    @factor_reconocimiento.destroy
destination = @factor_reconocimiento.area_id ? area_path(@factor_reconocimiento.area_id) : factores_reconocimientos_path
    respond_to do |format|
      format.html { redirect_to(destination) }
      format.xml  { head :ok }
    end
  end
   
end
